2019字节跳动Byte Camp夏令营算法笔试题--02.变量名拆分

题目描述

有一天小赵正在愉快的敲代码,小钱说:小赵,你这个变量的名字取的可读性不行啊,我都不知道哪里到哪里代表什么意思。小赵不服气的说:那你给我一组变量名,我保证我的变量名可以拆开,而且拆开的每一个变量名都在你这组变量名中出现。
现在小钱提供了一组不含重复变量名的列表,你能判断小赵的变量名是否能够拆分为多个小钱提供的变量名吗,能则输出True,不能则输出False。
说明:可以重复使用小钱提供的变量名,输入变量名长度均不超过10000,变量名个数不超过10000。

输入描述:第一行输入待拆分的变量名,第二行输入多个变量名,以空格隔开输出描述:根据能不能拆分输出True或者False

示例1输入输出示例仅供调试,后台判题数据一般不包含示例

输入

thisisadog
this thisis is a dog

输出

True

解题思路

1、遍历字符串数组中每一个字符串判断其是否在已知的字符串中出现过;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {

    public static void main(String[] args) throws IOException,NoClassDefFoundError {
        InputStreamReader isr = new InputStreamReader(System.in);
        BufferedReader bf  = new BufferedReader(isr);
        String str = bf.readLine();
        String[] arr = bf.readLine().split(" ");
        int len = arr.length;
        int status = 1;
        for(int i=0;i<len;i++) {
            if(!check(arr[i],str)) {
                status=0;
                break;
            }
        }
        if(status == 0) {
            System.out.println("False");
        }else {
            System.out.println("True");
        }
    }

    public static Boolean check(String temp,String str) {
        if(str.indexOf(temp) != -1) {
            return true;
        }
        return false;
    }
}

结果

执行结果通过测试用例60%,部分测试用例未通过还未找到原因,欢迎各位提出宝贵意见!

坚持原创技术分享,您的支持将鼓励我继续创作!